package cn.kmbeast.controller;

import cn.kmbeast.aop.Pager;
import cn.kmbeast.pojo.api.Result;
import cn.kmbeast.pojo.dto.query.extend.TagsQueryDto;
import cn.kmbeast.pojo.entity.Tags;
import cn.kmbeast.service.TagsService;import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/tags")
public class TagsController {

    @Resource
    /**
     * TagsService 是标签业务的接口  实现自动装配
     */
    private TagsService tagsService;


    /**
     * 标签新增的方法
     * @param tags  标签新增数据
     * @return Result 通用响应数据
     */
    @PostMapping("/save")
    public Result<Void> save(@RequestBody Tags tags) {
        return tagsService.save(tags);
    }

    /**
     * 标签的批量删除
     * @param ids  接受标签id的List集合
     * @return Result<Void>
     */
    @PostMapping("/batchDelete")
    public Result<Void> batchDelete(@RequestBody List<Long> ids) {
        return tagsService.batchDelete(ids);
    }

    /**
     * 标签的修改
     * @param tags 接受标签
     * @return Result<Void>
     */
    @PutMapping("/update")
    public Result<Void> update(@RequestBody Tags tags) {
        return tagsService.update(tags);
    }

    /**
     * 标签的查询 对名称进行一个模糊查询
     * @param tagsQueryDto 接受标签对应的查询类
     * @return Result<List<Tags>> 返回标签列表
     */
    @Pager
    @PostMapping("/query")
    public Result<List<Tags>> query(@RequestBody TagsQueryDto tagsQueryDto) {
        return tagsService.query(tagsQueryDto);
    }









}
